﻿using ASPNETVN.PORTAL.Components.UI;
using System;
using ASPNETVN.PORTAL.Components.Helpers;
using System.Web.UI;
using ASPNETVN.PORTAL.Components.Security;
using CrystalDecisions.CrystalReports.Engine;
using CUSTOMS.Modules.QLHS.Reports;
using System.Data;
using CUSTOMS.Modules.QLHS.Components.QLBB;
using ASPNETVN.PORTAL.Components.Configuration.Settings;
using ASPNETVN.PORTAL.Components.UI.DataTypes;

namespace CUSTOMS.Modules.QLHS
{
    public enum ModulePages
    {
        CreateUser,
        SignIn,
        TimToKhai,
        TheoDoiBienBan,
        TheoDoiChungTu,
        InThongKeBienBan,
        InThongKeDanhMucHangHoaMienKiemTra,
        InThongKeChungTu,
        InBienBan,
        ChiTietBienBan,
        ChiTietChungTu,
        SoTheoDoiHangHoaChuyenCuaKhau
       
    }

    public partial class Main : PortalModuleControl
    {
        public Main()
        {
            ModuleSettingItem cuchaiquan = new ModuleSettingItem(new StringDataType("CucHaiQuan"));
            cuchaiquan.Name = "Tên cục hải quan";
            cuchaiquan.Description = "Tên cục hải quan";
            cuchaiquan.SortOrder = 1;
            this.BaseSettings.Add("CucHaiQuan", cuchaiquan);

            ModuleSettingItem mahaiquan = new ModuleSettingItem(new StringDataType("MaHaiQuan"));
            mahaiquan.Name = "Mã hải quan cài đăt";
            mahaiquan.Description = "Mã hải quan cài đặt";
            mahaiquan.SortOrder = 2;
            this.BaseSettings.Add("MaHaiQuan", mahaiquan);

            ModuleSettingItem tenhaiquan = new ModuleSettingItem(new StringDataType("TenHaiQuan"));
            tenhaiquan.Name = "Tên hải quan cài đặt";
            tenhaiquan.Description = "Mã hải quan cài đặt";
            tenhaiquan.SortOrder = 3;
            this.BaseSettings.Add("TenHaiQuan", tenhaiquan);

            ModuleSettingItem mahaiquanchuyenden = new ModuleSettingItem(new StringDataType("MaHaiQuanChuyenDen"));
            mahaiquanchuyenden.Name = "Mã hải quan chuyển đến mặc định";
            mahaiquanchuyenden.Description = "Mã hải quan chuyển đến mặc định";
            mahaiquanchuyenden.SortOrder = 4;
            this.BaseSettings.Add("MaHaiQuanChuyenDen", mahaiquanchuyenden);
        }

        private void LoadChildControl()
        {
            const string basePath = "~/Modules/CUSTOMS.Modules.QLHS/";
            const string pageQuery = "page";
            string pageName = Request.QueryString[pageQuery];

            ModulePages page;
            if (PortalSecurity.CurrentUser.Identity.IsAuthenticated == false)
            {
                page = ModulePages.SignIn;
            }
            else
            {
                if (pageName == null)
                {
                    page = ModulePages.TheoDoiBienBan;
                    // Doanh nghiep dang nhap. 
                    string username = PortalSecurity.CurrentUser.Identity.Email.Split('@')[0];
                    long madoanhnghiep = 0;
                    bool isDoanhNghiep = Int64.TryParse(username, out madoanhnghiep);

                    if (isDoanhNghiep == false)
                    {
                        page = ModulePages.TheoDoiBienBan;
                    }
                    else
                    {
                        page = ModulePages.TimToKhai;
                    }

                }
                else
                {
                    page = (ModulePages)Enum.Parse(typeof(ModulePages), Request.QueryString[pageQuery], true);
                }
            }
            string src = string.Format("{0}Controls/{1}.ascx", basePath, page);
            ModulePage ctl = (ModulePage)this.LoadControl(src);
            ctl.ParentControl = this;
            ContentPane.Controls.Add(ctl);
        }

        protected void Page_Load(object sender, EventArgs e)
        {
            this.LoadChildControl();

            // Left Pane.
            LiteralControl literal = new LiteralControl("");

            // Manager Permission.
            string url = string.Empty;
            if (PortalSecurity.HasManageAuthorization(this.ModuleID))
            {
                literal.Text += "<div class='MenuLink'>";
                literal.Text += "<div class='MenuLinkGroup' width='100%'>Quản lý tên đăng nhập</div>";
                url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(this.ModuleID, 0, ModulePages.CreateUser));
                literal.Text += string.Format("<a href='{0}' class='MenuLinkItem'>» Tạo tên đăng nhập</a>", url);
            }

            if (PortalSecurity.CurrentUser.Identity.IsAuthenticated)
            {
                literal.Text += "<div class='MenuLinkGroup' width='100%'>Quản lý biên bản</div>";
                //literal.Text += "<div class='MenuLink'>";

                url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(this.ModuleID, 0, ModulePages.TimToKhai, "function=bb"));
                literal.Text += string.Format("<a href='{0}' class='MenuLinkItem'>» Tạo thông tin quản lý BB</a>", url);
                // Doanh nghiep dang nhap. 
                string username = PortalSecurity.CurrentUser.Identity.Email.Split('@')[0];
                long madoanhnghiep = 0;
                bool isDoanhNghiep = Int64.TryParse(username, out madoanhnghiep);

                if (isDoanhNghiep == false)
                {
                    url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(this.ModuleID, 0, ModulePages.TheoDoiBienBan));
                    literal.Text += string.Format("<a href='{0}' class='MenuLinkItem'>» Theo dõi biên bản</a>", url);

                    url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(this.ModuleID, 0, ModulePages.InThongKeBienBan));
                    literal.Text += string.Format("<a href='{0}' class='MenuLinkItem'>» Thống kê biên bản bàn giao</a>", url);

                    url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(this.ModuleID, 0, ModulePages.InThongKeDanhMucHangHoaMienKiemTra));
                    literal.Text += string.Format("<a href='{0}' class='MenuLinkItem'>» Thống kê danh mục hàng hóa</a>", url);

                    url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(this.ModuleID, 0, ModulePages.SoTheoDoiHangHoaChuyenCuaKhau));
                    literal.Text += string.Format("<a href='{0}' class='MenuLinkItem'>» Sổ theo dõi hàng hóa CCK</a>", url);

                    // Quản lý chứng từ
                    /*
                    literal.Text += "<div class='MenuLinkGroup' width='100%'>Quản lý chứng từ</div>";
                    //literal.Text += "<div class='MenuLink'>";
                    url = string.Empty;
                    url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(this.ModuleID, 0, ModulePages.TimToKhai, "function=ct"));
                    literal.Text += string.Format("<a href='{0}' class='MenuLinkItem'>» Tạo thông tin quản lý CT</a>", url);

                    url = ResolveClientUrl(HttpUrlBuilder.BuildModulePageUrl(this.ModuleID, 0, ModulePages.TheoDoiChungTu));
                    literal.Text += string.Format("<a href='{0}' class='MenuLinkItem'>» Theo dõi chứng từ</a>", url);
                    */
                }
                literal.Text += "</div>";
            }

            LeftPane.Controls.Add(literal);
        }
    }
}